Recent advances in mobile device technology have led to an increasing degree of separation between the design and manufacture of mobile devices and the development of software intended to run on those mobile devices. For example, a software vendor may develop mobile device operating system software intended to run on multiple mobile devices manufactured by different device-makers. Furthermore, a large number of independent and diverse third-party application developers may develop mobile device applications (“apps”) intended to execute on the mobile device operating system irrespective of the particular mobile device on which the operating system is installed.
Several challenges, however, may complicate the of enabling the same mobile device operating system and/or third-party mobile apps to execute in a similar manner across different mobile devices. For example, different mobile devices may possess different hardware architectures, such that certain operating system functions programmed to rely on a first hardware architecture may not operate correctly on a mobile device having a second hardware architecture. In addition, some mobile device operating systems are distributed using an open source model. As a result, some device-makers may modify the operating system before installing it on a retailed mobile device for the purpose of ensuring that it conforms to the specific hardware architecture of the mobile device and/or offers certain enhanced functionality over that of other mobile devices running the same operating system.
Still further, different mobile devices may be intended for consumer use with certain mobile network carriers, which may require that the mobile devices perform certain core operating system functions or higher level application layer functions in different manners. As a result of these and other complicating factors, third-party mobile apps that have been programmed with consideration only of the mobile device operating system on which they will execute may behave differently on different mobile device architectures, each of which may be running a different customized version of the same operating system.
Accordingly, there is a need for methods and systems for testing mobile devices having different hardware architectures, different intended carriers, and/or different modified versions of an operating system installed to ensure that they are able to meet certain standards for executing third-party mobile apps in a uniform or expected manner.